// Copyright (C) 2023 即时通讯网(52im.net) & Jack Jiang.
// The RainbowChat Project. All rights reserved.
// 
// 【本产品为著作权产品，合法授权后请放心使用，禁止外传！】
// 【本次授权给：<北京小羊驼科技有限公司>，授权编号：<NT231212144350>，代码指纹：<A.702363430.550>，技术对接人微信：<ID: wxid_wbyootvkdcgj22>】
// 【授权寄送：<收件：苏先生、地址：北京市大兴区北京密码西区6号楼1单元301、电话：18613885610、邮箱：bd@huiyuanxiang-inc.com>】
// 
// 【本系列产品在国家版权局的著作权登记信息如下】：
// 1）国家版权局登记名(简称)和权证号：RainbowChat    （证书号：软著登字第1220494号、登记号：2016SR041877）
// 2）国家版权局登记名(简称)和权证号：RainbowChat-Web（证书号：软著登字第3743440号、登记号：2019SR0322683）
// 3）国家版权局登记名(简称)和权证号：RainbowAV      （证书号：软著登字第2262004号、登记号：2017SR676720）
// 4）国家版权局登记名(简称)和权证号：MobileIMSDK-Web（证书号：软著登字第2262073号、登记号：2017SR676789）
// 5）国家版权局登记名(简称)和权证号：MobileIMSDK    （证书号：软著登字第1220581号、登记号：2016SR041964）
// * 著作权所有人：江顺/苏州网际时代信息科技有限公司
// 
// 【违法或违规使用投诉和举报方式】：
// 联系邮件：jack.jiang@52im.net
// 联系微信：hellojackjiang
// 联系QQ号：413980957
// 授权说明：http://www.52im.net/thread-1115-1-1.html
// 官方社区：http://www.52im.net
package com.x52im.rbchat;

import com.x52im.rainbowchat.im.dto.MsgBodyRoot;

/**
 * 本类中存放的是APP中的全局常量。
 *
 * @author Jack Jiang(http://www.52im.net/space-uid-1.html)
 * @version 1.0
 */
public interface Const
{
	String APPKey = "b0ff6e9f48b86e4ce29c34b9a3a28b35";


	//---------------------------------------------------------- for （1）HTTP和IM Socket相关配置（自行修改）
	/** HTTP rest接口服务器根地址 */
	// TODO 此项配置改为您自已的http服务器访问根地址即可！
    String HTTP_SERVER_ROOT_URL = "http://192.168.0.115:8080/rainbowchat_pro/";

	/** IM服务器IP地址 */
	// TODO 此项配置改为您自已的IM服务器ip或域名！
  	String IM_SERVER_IP = "192.168.0.115";

	/** IM服务器端口 */
	// TODO 此项配置改为您自已的IM服务器UDP或TCP长连接监听端口（注意：不是tomcat的http端口哦）！
	int IM_SERVER_PORT = 9903;


	//---------------------------------------------------------- for （2）HTTP相关常量（请勿改动）
	/** HTTP rest 普通数据接口服务的统一调用地址（普通数据指的是除图片等2进制文件上传下载外的文本数据） */
	String HTTP_COMMON_CONTROLLER_URL = HTTP_SERVER_ROOT_URL;
	/** 用户头像上传的独立http接口地址 */
	String AVATAR_UPLOAD_CONTROLLER_URL_ROOT = HTTP_SERVER_ROOT_URL+"UserAvatarUploader";
	/** 用户头像下载的独立http接口地址 */
	String AVATAR_DOWNLOAD_CONTROLLER_URL_ROOT = HTTP_SERVER_ROOT_URL+"UserAvatarDownloader";
	/** 图片消息上传的独立http接口地址 */
	String MSG$IMG_UPLOAD_CONTROLLER_URL_ROOT = HTTP_SERVER_ROOT_URL+"MsgImageUploader";
	/** 语音留言消息上传的独立http接口地址 */
	String VOICE$MSG_UPLOAD_CONTROLLER_URL_ROOT = HTTP_SERVER_ROOT_URL+"MsgVoiceUploader";
	/** 用户照片上传的独立http接口地址 */
	String MY$PHOTO_UPLOAD_CONTROLLER_URL_ROOT = HTTP_SERVER_ROOT_URL+"MyPhotoUploder";
	/** 用户语音介绍上传的独立http接口地址 */
	String MY$VOICE_UPLOAD_CONTROLLER_URL_ROOT = HTTP_SERVER_ROOT_URL+"MyVoiceUploader";
	/** 用户2进制数据下载的独立http接口地址 */
	String BBONERAY_DOWNLOAD_CONTROLLER_URL_ROOT = HTTP_SERVER_ROOT_URL+"BinaryDownloader";
	/** 用户大文件上传的独立http接口地址 */
	String BIG_FILE_UPLOADER_CONTROLLER_URL_ROOT = HTTP_SERVER_ROOT_URL+"BigFileUploader";
	/** 用户大文件下载的独立http接口地址 */
	String BIG_FILE_DOWNLOADER_CONTROLLER_URL_ROOT = HTTP_SERVER_ROOT_URL+"BigFileDownloader";
	/** 用户短视频消息的视频文件上传的独立http接口地址 */
	String SHORTVIDEO_UPLOADER_CONTROLLER_URL_ROOT = HTTP_SERVER_ROOT_URL+"ShortVideoUploader";
	/** 用户短视频消息的视频文件下载的独立http接口地址 */
	String SHORTVIDEO_DOWNLOADER_CONTROLLER_URL_ROOT = HTTP_SERVER_ROOT_URL+"ShortVideoDownloader";
	/** 用户短视频消息的视频首帧预览图片文件上传的独立http接口地址 */
	String SHORTVIDEO_THUMB_UPLOADER_CONTROLLER_URL_ROOT = HTTP_SERVER_ROOT_URL+"ShortVideoThumbUploader";
	/** 用户短视频消息的视频首帧预览图片文件下载的独立http接口地址 */
	String SHORTVIDEO_THUMB_DOWNLOADER_CONTROLLER_URL_ROOT = HTTP_SERVER_ROOT_URL+"ShortVideoThumbDownloader";
	/** 用户位置消息的地图预览图片文件上传的独立http接口地址 */
	String LOCATION_PREVIEW_UPLOADER_CONTROLLER_URL_ROOT = HTTP_SERVER_ROOT_URL+"LocationPreviewUploader";
	/** 关于我们：服务条款链接（英文版） */
	String RBCHAT_REGISTER_AGREEMENT_EN_URL = HTTP_SERVER_ROOT_URL + "clause/agreement.html";
	/** 关于我们：服务条款链接（中文版） */
	String RBCHAT_REGISTER_AGREEMENT_CN_URL = HTTP_SERVER_ROOT_URL + "clause/agreement_cn.html";
	/** 关于我们：隐私申明链接（英文版） */
	String RBCHAT_PRIVACY_EN_URL = HTTP_SERVER_ROOT_URL + "clause/privacy.html";
	/** 关于我们：隐私申明链接（中文版） */
	String RBCHAT_PRIVACY_CN_URL = HTTP_SERVER_ROOT_URL + "clause/privacy_cn.html";
	/** 关于我们：FAQ 链接（中文版） */
	String RBCHAT_QNA_CN_URL = HTTP_SERVER_ROOT_URL + "clause/qna_cn.html";
	/** 关于我们：FAQ 链接（英文版） */
	String RBCHAT_QNA_EN_URL = HTTP_SERVER_ROOT_URL + "clause/qna.html";
	/** 关于我们：官网链接 */
	String RBCHAT_OFFICAL_WEBSITE = "http://www.52im.net";
	/** 关于我们：联系邮件 */
	String RBCHAT_OFFICAL_MAIL = "jack.jiang@52im.net";


	//---------------------------------------------------------- for （3）通用常量（请勿改动）
	/** 功能应用场景：for 好友的正式聊天 */
	String CHAT_TYPE_FREIDN$CHAT = String.valueOf(MsgBodyRoot.CHAT_TYPE_FREIDN$CHAT);
	/** 功能应用场景：for 陌生人聊天（临时聊天） */
	String CHAT_TYPE_GUEST$CHAT = String.valueOf(MsgBodyRoot.CHAT_TYPE_GUEST$CHAT);
	/** 功能应用场景：for 世界频道或普通群聊 */
	String CHAT_TYPE_GROUP$CHAT = String.valueOf(MsgBodyRoot.CHAT_TYPE_GROUP$CHAT);


	//---------------------------------------------------------- for （4）聊天UI的可配置变量（可按需改动）
	/** 礼品工具 - 要赠送的礼品集：每页显示的礼品数  */
	int GIFTS_TOOLS_PAGER_EVERY_PAGE_NUM = 8;
//	/** 礼品工具 - 要索取的礼品集：每页显示的礼品数  */
//	int GIFTS_TOOLS_PAGER_GET$EVERY_PAGE_NUM = 7;

	/** 更多功能：每页显示的功能列数  */
	int MORE_FUNCTIONS_PAGER_EVERY_PAGE_COLUMNS = 4;
	/** 更多功能：每页显示的功能行数  */
	int MORE_FUNCTIONS_PAGER_EVERY_PAGE_LINES = 2;


	//---------------------------------------------------------- for （5）其它配置变量（可按需改动）
  	String DIR_KCHAT_WORK_RELATIVE_ROOT = "/"+"rainbowchatx_pro";

	/** 通用图片缓存目录（当你的图片缓存不想单独存放时，就用这个目录，当前的用户头像、图片消息、短视频预览图、位置预览图等都是放在这里） */
	String DIR_KCHAT_IMG_RELATIVE_DIR = DIR_KCHAT_WORK_RELATIVE_ROOT+"/"+"img";
//	/** 用户头像缓存目录 */
//	String DIR_KCHAT_AVATART_RELATIVE_DIR = DIR_KCHAT_WORK_RELATIVE_ROOT+"/"+"avatar";
//	/** 聊天图片缓存目录 */
//	String DIR_KCHAT_SENDPIC_RELATIVE_DIR = DIR_KCHAT_WORK_RELATIVE_ROOT+"/"+"image";
	/** 聊天时的语音留言缓存目录 */
	String DIR_KCHAT_SENDVOICE_RELATIVE_DIR = DIR_KCHAT_WORK_RELATIVE_ROOT+"/"+"voice";
	/** 照片缓存目录 */
	String DIR_KCHAT_PHOTO_RELATIVE_DIR = DIR_KCHAT_WORK_RELATIVE_ROOT+"/"+"photo";
	/** 自我介绍语音缓存目录 */
	String DIR_KCHAT_PVOICE_RELATIVE_DIR = DIR_KCHAT_WORK_RELATIVE_ROOT+"/"+"pvoice";
	/** 收到的大文件保存目录 */
	String DIR_KCHAT_FILE_RELATIVE_DIR = DIR_KCHAT_WORK_RELATIVE_ROOT+"/"+"file";
	/** 收到的短视频保存目录 */
	String DIR_KCHAT_SHORTVIDEO_RELATIVE_DIR = DIR_KCHAT_WORK_RELATIVE_ROOT+"/"+"shortvideo";
//	/** 收到的位置消息，地图预览图保存目录 */
//	String DIR_KCHAT_LOCATION_RELATIVE_DIR = DIR_KCHAT_WORK_RELATIVE_ROOT+"/"+"location";

	/** 用户上传头像时，允许的最大用户头像文件大小 */
	long LOCAL_AVATAR_FILE_DATA_MAX_LENGTH = 2 * 1024 * 1024; // 2M
	/** 用户上传头像时，图片质量压缩比率（为0~100的量，0表示不压缩，100表示最大限度压缩，默认75是参考微信的压缩率） */
	int LOCAL_AVATAR_IMAGE_QUALITY = 75; // 75%质量

	/** 用户发送的图片文件，允许的最大文件大小 */
	long LOCAL_IMAGE_FILE_DATA_MAX_LENGTH = 2 * 1024 * 1024;  // 2M
	/** 用户发送的语音留言文件，允许的最大文件大小 */
	long LOCAL_VOICE_FILE_DATA_MAX_LENGTH = 1 * 1024 * 1024;  // 1M

	/** 用户上传的照片文件，允许的最大文件大小 */
	long LOCAL_PHOTO_FILE_DATA_MAX_LENGTH = 3 * 1024 * 1024;  // 3M
	/** 用户上传的自我介绍语音留言文件，允许的最大文件大小 */
	long LOCAL_PVOICE_FILE_DATA_MAX_LENGTH = 1 * 1024 * 1024; // 1M

	/** SQLite本地存储：正式聊天消息的保存周期（目前是保存15天内的聊天消息，早于此消息的将被自动清除：始终保持安全性和防止存储空间的堆积） */
	int SQLITE_CHAT_MESSAGE_SOTRE_RANGE = 15;;

	/** 用户发送的文件，允许的最大文件大小 */
	// TODO: 目前最大25M是参考微信的设定。实际上如果必要，此值可设为你需要的数值（比如100M或1G等，就看你服务器多牛了^_^!）
	long SEND_FILE_DATA_MAX_LENGTH = 25 * 1024 * 1024;

	/** 用户发送的短视频，允许的最长录制时间（单位：毫秒） */
	// TODO: 目前最大10秒是参考微信的设定。实际上如果必要，此值可设为你需要的数值（比如易信的3分钟!）
	int SHORT_VIDEO_RECORD_MAX_TIME = 10 * 1000;
	/** 用户发送的短视频，允许的最大文件大小 */
	long SEND_SHORT_VIDEO_DATA_MAX_LENGTH = 50 * 1024 * 1024;

	/** 聊天界面中，消息的显示时间间隔（单位：毫秒）：默认是2分钟内的消息只在第一条消息上显示时间，否则会再次显示时间 */
	// 参考资料：http://www.52im.net/thread-3008-1-1.html#40
	int CHATTING_MESSAGE_SHOW_TIME_INTERVAL = 2 * 60 * 1000;

	/** 消息可被撤回的最大时限，默认值是2（单位：分钟） */
	int CHATTING_MESSAGE_CAN_BE_REVOKE_TIME  = 2;


	//---------------------------------------------------------- for （6）其它配置（自行修改）

	/**
	 * true表示当前实时音视频服务已停用，界面上进行相关功能操作时会按服务不可用处理。目前本字段
	 * 用于RainbowChat的测试时当音视频服务器未部署时不致于让UI操作出现崩溃等很差的体验！本字段仅用于测试时！！  */
	boolean NO_REAL_TIME_VOICE$VEDIO_SERVICE = false;
}
